//
// Snake.hpp for Snake] in /home/titouan/Dropbox/Code/nibbler-epitech-2017
//
// Made by Titouan Creach
// Login   <titouan@epitech.net>
//
// Started on  Sat Mar 22 19:02:47 2014 Titouan Creach
// Last update Mon Mar 24 14:05:43 2014 Titouan Creach
//

#ifndef SNAKE_HPP
#define SNAKE_HPP

#include <iostream>
#include <string>
#include <deque>
#include "Point.hpp"

class Snake
{

public:

  enum Direction
    {
      LEFT,
      RIGHT,
      UP,
      DOWN
    };

  Snake(int w, int h);

  void addNode();

  std::deque<Point> getPointList() const { return _pointList; }

  /* Le snake change de direction */
  void move(Snake::Direction d);

  /* Update */
  void update();

  std::size_t getScore() const;


private:
  int _hasEaten;
  Direction _actualDir;
  std::deque<Point> _pointList;

};

#endif
